# @Author  : 加中实训
from rest_framework import permissions


class IsOwnerOrReadOnly(permissions.BasePermission):
    """控制对象级别的权限"""

    def has_object_permission(self, request, view, obj):
        # 如果是管理员用户，则可以进行所有操作，否则只能用户的数据
        if request.user.is_superuser:
            return True
        # 校验用户，如果不是管理员，则判断操作的用户对象和登录的用户对象是否为同一个用户
        return obj == request.user


class AddrPermissions(permissions.BasePermission):
    """地址对象操作的权限"""

    def has_object_permission(self, request, view, obj):
        # 判断登录的账号是否是管理员
        if request.user.is_superuser:
            return True
        # 如果不是管理员，则判断操作的用户和登录的用户对象是否是同一个用户
        return obj.user == request.user
